<?php

require_once("conexao.php");

class Util {

    public static function retornarUsuarios() {

        $items = array();
        $conexao = Conexao::conectar();

        $query = "select * from tbpessoas where tipo='FUNCIONARIO' and usuario is not NULL and senha is not NULL and deletado='N'";
        $res = mysql_query($query, $conexao);

        $i = 0;
        while ($row = mysql_fetch_object($res)) {
            $items[$i]["id"] = $row->id;
            $items[$i]["nome"] = $row->nome;
            $i++;
        }

        return $items;
    }

    public static function retornarNaturezaOperacaoGeral() {

        $items = array();
        $conexao = Conexao::conectar();

        $query = "select * from tbnatureza where deletado='N'";
        $res = mysql_query($query, $conexao);

        $i = 0;
        while ($row = mysql_fetch_object($res)) {
            $items[$i]["id"] = $row->id;
            $items[$i]["nome"] = $row->nome;
            $i++;
        }

        return $items;
    }

    public static function retornarNaturezaOperacao() {

        $items = array();
        $conexao = Conexao::conectar();

        $query = "select * from tbnatureza where fixa='N' and deletado='N'";
        $res = mysql_query($query, $conexao);

        $i = 0;
        while ($row = mysql_fetch_object($res)) {
            $items[$i]["id"] = $row->id;
            $items[$i]["nome"] = $row->nome;
            $i++;
        }

        return $items;
    }

    public static function retornarFornecedores() {

        $items = array();
        $conexao = Conexao::conectar();

        $query = "select * from tbpessoas where tipo='FORNECEDOR' and deletado='N'";
        $res = mysql_query($query, $conexao);

        $i = 0;
        while ($row = mysql_fetch_object($res)) {
            $items[$i]["id"] = $row->id;
            $items[$i]["nome"] = $row->nome;
            $i++;
        }

        return $items;
    }

    public static function retornarClientes() {

        $items = array();
        $conexao = Conexao::conectar();

        $query = "select * from tbpessoas where tipo='CLIENTE' and deletado='N'";
        $res = mysql_query($query, $conexao);

        $i = 0;
        while ($row = mysql_fetch_object($res)) {
            $items[$i]["id"] = $row->id;
            $items[$i]["nome"] = $row->nome;
            $items[$i]["cpfcnpj"] = $row->cpfcnpj;
            $i++;
        }

        return $items;
    }

    public static function retornarCorretores() {

        $items = array();
        $conexao = Conexao::conectar();

        $query = "select * from tbpessoas where corretor='S' and deletado='N'";
        $res = mysql_query($query, $conexao);

        $i = 0;
        while ($row = mysql_fetch_object($res)) {
            $items[$i]["id"] = $row->id;
            $items[$i]["nome"] = $row->nome;
            $i++;
        }

        return $items;
    }

    public static function retornarEstados($conexao) {

        $query = "select * from tbestado where deletado='N'";
        $res = mysql_query($query, $conexao);

        $arrayEstados = array();
        $i = 0;
        while ($row = mysql_fetch_object($res)) {

            $arrayEstados[$i]['id'] = $row->id;
            $arrayEstados[$i]['sigla'] = $row->sigla;
            $arrayEstados[$i]['descricao'] = $row->descricao;
            $i++;
        }

        return $arrayEstados;
    }

    public static function retornarNomeEstado($idEstado) {

        $conexao = Conexao::conectar();

        $query = "select descricao from tbestado where id='" . $idEstado . "' and deletado='N'";
        $res = mysql_query($query, $conexao);
        $row = mysql_fetch_object($res);

        Conexao::desconectar();
        return $row->descricao;
    }

    public static function retornarNomeCidade($idCidade) {

        $conexao = Conexao::conectar();

        $query = "select descricao from tbcidades where id='" . $idCidade . "' and deletado='N'";
        $res = mysql_query($query, $conexao);
        $row = mysql_fetch_object($res);

        Conexao::desconectar();
        return $row->descricao;
    }

    public static function retornarProfissao($idProfissao) {

        $profissao = "";
        $conexao = Conexao::conectar();

        $query = "select nome from tbprofissao where id='" . $idProfissao . "' and deletado='N'";
        $res = mysql_query($query, $conexao);
        $num = mysql_num_rows($res);

        if ($num > 0) {
            $row = mysql_fetch_object($res);
            $profissao = $row->nome;
        }

        Conexao::desconectar();
        return $profissao;
    }

    public static function carregarCidadesDDL($codigoEstado) {

        $arrayCidades = array();

        $conexao = Conexao::conectar();

        $query = "select * from tbcidades where idEstado=" . $codigoEstado . " and deletado='N'";
        $res = mysql_query($query, $conexao);

        $i = 0;
        while ($row = mysql_fetch_object($res)) {
            $arrayCidades[$i]['id'] = $row->id;
            $arrayCidades[$i]['cidade'] = utf8_encode($row->descricao);
            $i++;
        }

        Conexao::desconectar();

        return $arrayCidades;
    }

    public static function carregarModelosDDL($codigoMarca) {

        $arrayCidades = array();

        $conexao = Conexao::conectar();

        $query = "select * from tbmodelo where marca=" . $codigoMarca . " and deletado='N'";
        $res = mysql_query($query, $conexao);

        $i = 0;
        while ($row = mysql_fetch_object($res)) {
            $arrayCidades[$i]['id'] = $row->id;
            $arrayCidades[$i]['modelo'] = utf8_encode($row->nome);
            $i++;
        }

        Conexao::desconectar();

        return $arrayCidades;
    }

    public static function moedaBd($valor) {

        $source = array('R$ ', '.', ',');
        $replace = array('', '', '.');
        return str_replace($source, $replace, $valor);
    }

    public static function dbMoeda($valor, $comRS = true) {
        if ($comRS)
            return 'R$ ' . number_format($valor, 2, ',', '.');
        else
            return number_format($valor, 2, ',', '.');
    }

    public static function dataBd($data) {

        $dataAux = explode("/", $data);
        return $dataAux[2] . "-" . $dataAux[1] . "-" . $dataAux[0];
    }

    public static function bdData($data) {
        $dataAux = explode("-", $data);
        return $dataAux[2] . "/" . $dataAux[1] . "/" . $dataAux[0];
    }
    
    public static function bdDataHora($data) {
        $dataHora = explode(" ",$data);
        $dataAux  = explode("-", $dataHora[0]);
        return $dataAux[2] . "/" . $dataAux[1] . "/" . $dataAux[0]." ".$dataHora[1];
    }

    public static function somarData($data, $dias) {

        list($ano, $mes, $dia) = explode("-", $data);
        return date('Y-m-d', mktime(0, 0, 0, $mes, $dia + $dias, $ano));
    }

    public static function proximoDiaUtil($data, $saida = 'd/m/Y') {
        // Converte $data em um UNIX TIMESTAMP
        $timestamp = strtotime($data);
        // Calcula qual o dia da semana de $data
        // O resultado será um valor numérico:
        // 1 -> Segunda ... 7 -> Domingo
        $dia = date('N', $timestamp);
        // Se for sábado (6) ou domingo (7), calcula a próxima segunda-feira
        if ($dia >= 6) {
            $timestamp_final = $timestamp + ((8 - $dia) * 3600 * 24);
        } else {
            // Não é sábado nem domingo, mantém a data de entrada
            $timestamp_final = $timestamp;
        }

        return date($saida, $timestamp_final);
    }

    public static function calcularDias($data, $ordem = "") {

        list($ano1, $mes1, $dia1) = explode("-", $data);

        $ano2 = date("Y");
        $mes2 = date("m");
        $dia2 = date("d");

        //calculo timestam das duas datas
        $timestamp1 = mktime(0, 0, 0, $mes1, $dia1, $ano1);
        $timestamp2 = mktime(0, 0, 0, $mes2, $dia2, $ano2);

        //diminuo a uma data a outra
        if (empty($ordem)) {
            $segundos_diferenca = $timestamp1 - $timestamp2;
        } else {
            $segundos_diferenca = $timestamp2 - $timestamp1;
        }
        //echo $segundos_diferenca;
        //converto segundos em dias
        $dias_diferenca = $segundos_diferenca / (60 * 60 * 24);

        //obtenho o valor absoluto dos dias (tiro o possível sinal negativo)
        if (empty($ordem)) {
            $dias_diferenca = abs($dias_diferenca);
        }

        //tiro os decimais aos dias de diferenca
        $dias_diferenca = floor($dias_diferenca);

        return $dias_diferenca;
    }

    public static function UltimoDia($ano, $mes) {
        if (((fmod($ano, 4) == 0) and (fmod($ano, 100) != 0)) or (fmod($ano, 400) == 0)) {
            $dias_fevereiro = 29;
        } else {
            $dias_fevereiro = 28;
        }

        switch ($mes) {
            case 01: return 31;
                break;
            case 02: return $dias_fevereiro;
                break;
            case 03: return 31;
                break;
            case 04: return 30;
                break;
            case 05: return 31;
                break;
            case 06: return 30;
                break;
            case 07: return 31;
                break;
            case 08: return 31;
                break;
            case 09: return 30;
                break;
            case 10: return 31;
                break;
            case 11: return 30;
                break;
            case 12: return 31;
                break;
        }
    }

    public static function retornaDiaSemana($data) {
        $ano = substr("$data", 0, 4);
        $mes = substr("$data", 5, -3);
        $dia = substr("$data", 8, 9);

        $diasemana = date("w", mktime(0, 0, 0, $mes, $dia, $ano));

        switch ($diasemana) {
            case"0": $diasemana = "Domingo";
                break;
            case"1": $diasemana = "Segunda-Feira";
                break;
            case"2": $diasemana = "Terça-Feira";
                break;
            case"3": $diasemana = "Quarta-Feira";
                break;
            case"4": $diasemana = "Quinta-Feira";
                break;
            case"5": $diasemana = "Sexta-Feira";
                break;
            case"6": $diasemana = "Sábado";
                break;
        }

        return $diasemana;
    }

    public static function retornaMes($mes) {
        $meses = array(
            '01' => 'Janeiro',
            '02' => 'Fevereiro',
            '03' => 'Março',
            '04' => 'Abril',
            '05' => 'Maio',
            '06' => 'Junho',
            '07' => 'Julho',
            '08' => 'Agosto',
            '09' => 'Setembro',
            '10' => 'Outubro',
            '11' => 'Novembro',
            '12' => 'Dezembro'
        );

        return $meses[$mes];
    }

    public static function begin() {
        @mysql_query("BEGIN");
    }

    public static function commit() {
        @mysql_query("COMMIT");
    }

    public static function rollback() {
        @mysql_query("ROLLBACK");
    }

}

?>